package beans;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="avaliacao")
public class Avaliacao {
	@EmbeddedId
	private AvaliacaoPK avaliacaoPK;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumns(value={@JoinColumn(name="tipomet_cod",insertable=false,updatable=false),
			@JoinColumn(name="iter_numero",insertable=false,updatable=false),
			@JoinColumn(name="proj_cod",insertable=false,updatable=false)})
	private Metrica metrica;
	
	@ManyToOne
	@JoinColumn(name="tipousu_cod")
	private TipoUsuario tipoUsuario;
	
	@Column(name="aval_campo1")
	private Float nota;

	public Metrica getMetrica() {
		return metrica;
	}

	public void setMetrica(Metrica metrica) {
		if(avaliacaoPK == null)
		{
			avaliacaoPK = new AvaliacaoPK();
		}
		avaliacaoPK.setIdProjeto(metrica.getMetricaPK().getIdProjeto());
		avaliacaoPK.setIdTipoMetrica(metrica.getMetricaPK().getIdTipoMetrica());
		avaliacaoPK.setIterNumero(metrica.getMetricaPK().getIterNumero());
		this.metrica = metrica;
	}

	public TipoUsuario getTipoUsuario() {
		return tipoUsuario;
	}

	public void setTipoUsuario(TipoUsuario tipoUsuario) {
		this.tipoUsuario = tipoUsuario;
	}

	public Float getNota() {
		return nota;
	}

	public void setNota(Float nota) {
		this.nota = nota;
	}

	public AvaliacaoPK getAvaliacaoPK() {
		return avaliacaoPK;
	}

	public void setAvaliacaoPK(AvaliacaoPK avaliacaoPK) {
		this.avaliacaoPK = avaliacaoPK;
	}
}
